import {Injectable} from '@angular/core';
import {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';
import {ResultData} from './result-data';

@Injectable()
export class HttpService {
    headers: any;

    constructor(private http: HttpClient) {

        // this.headers = {
        //     'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
        //     'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        //     'Accept-Language': 'zh-CN',
        //     'Token': ''
        // };
    }
//
//     /**
//      * 创建请求header
//      */
//     private createAuthorizationHeader(): HttpHeaders {
//         let token = sessionStorage.getItem('token');
//         if (!token) {
//             token = '';
//         }
//         return new HttpHeaders()
//             .set('token', token)
//             .set('Content-Type', 'application/json')
//             .set('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8')
//             .set('Accept-Language', 'zh-CN');
//     }
//
//     public getData(url: string, callback: (data?: ResultData) => void |
//         { success: (data?: ResultData) => void, error: (data?: ResultData) => void }, params?: HttpParams,): void {
//         console.log('-=-=-=', this.createAuthorizationHeader());
//         this.http.get(url, {
//                 params: params,
//                 headers: this.createAuthorizationHeader()
//             }
//         ).subscribe((data: ResultData) => {
//             if (typeof callback === 'function') {
//                 console.log('callback === \'function\' success = ', data);
//                 if (data.success) {
//                     callback(data);
//                 } else {
//                     // this.messageService.error(data.msg);
//                     callback(data);
//                 }
//             } else {
//                 console.log('callback != \'function\' success = ', data);
//                 if (data.success) {
//                     callback['success'](data);
//                 } else {
//                     // this.messageService.error(data.msg);
//                     callback['error'](data);
//                 }
//             }
//         }, error => {
//             console.log('get error', error);
//         });
//     }
//
//     public postData(url: string, value: any, callback: (data?: ResultData) => void): void {
//         this.http.post(url, value, {
//             headers: this.createAuthorizationHeader()
//         }).subscribe((data: ResultData) => {
//             callback(data);
//         }, error => {
//             console.log('post error', error);
//         });
//     }
//
//     public postUploadFile(url: string, value: any, callback: ((data?: ResultData) => void)): void {
//         {
//             this.http.post(url, value, {}).subscribe((data: ResultData) => {
//                 callback(data);
//             }, error => {
//                 console.log('postUploadFile error', error);
//             });
//         }
//     }
//
//     public delete(url: string, callback: (data?: ResultData) => void): void {
//         this.http.delete(url, {
//             headers: this.createAuthorizationHeader()
//         }).subscribe((data: ResultData) => {
//             callback(data);
//         }, error => {
//             console.log('delete error', error);
//         });
//     }
//
//     public put(url: string,
//                value: any,
//                callback: (data?: ResultData) => void): void {
//         this.http.put(url, value, {
//             headers: this.createAuthorizationHeader()
//         }).subscribe((data: ResultData) => {
//             callback(data);
//         }, error => {
//             console.log('put error = ', error);
//         });
//     }
//
//     public deletes(url: string, callback: (data?: ResultData) => void): void {
//         this.http.delete(url, {headers: this.createAuthorizationHeader()})
//             .toPromise()
//             .then((data: ResultData) => {
//                 callback(data);
//             }, error => {
//                 console.log('deletes error = ', error);
//             });
//     }
//
//     /**
//      * 请求后台成功统一处理
//      * @param res
//      * @param {boolean} showErrorAlert
//      * @returns 返回结果
//      */
//     requestSuccess(res: any, showErrorAlert: boolean = true) {
//     }
//
//     /**
//      * 处理请求失败事件
//      * @param url 请求地址
//      * @param options 参数
//      * @param err 错误
//      */
//     private requestFailed(url: string): void {
//     }
}
